package cn.mldn.mldncloud.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

import cn.mldn.mldncloud.dao.IOrdersDAO;
import cn.mldn.mldncloud.dto.OrdersDTO;
import cn.mldn.mldncloud.po.Orders;
import cn.mldn.mldncloud.service.ICOrdersService;
@Service
public class COrdersServiceImpl implements ICOrdersService {
	@Autowired
	private IOrdersDAO ordersDAO;
	@Override
	public List<OrdersDTO> listOrders(String refectoryId) {
		
		List<Orders> list =	ordersDAO.findByrefectoryId(refectoryId);
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		List<OrdersDTO> returnList = new ArrayList<>();
		list.forEach((o)->{								// 将持久化对象集合保存到传输对象集合
			OrdersDTO oto = new OrdersDTO() ;
			BeanUtils.copyProperties(o, oto);// 对象拷贝
			returnList.add(oto) ;				// 保存全部DTO对象
		});
		
		return returnList;
	}
	@Override
	public List<OrdersDTO> listTodayOrders(String refectoryId) {
		List<Orders> list =	ordersDAO.findTodayOrders(refectoryId);
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		List<OrdersDTO> returnList = new ArrayList<>();
		list.forEach((o)->{								// 将持久化对象集合保存到传输对象集合
			OrdersDTO oto = new OrdersDTO() ;
			BeanUtils.copyProperties(o, oto);// 对象拷贝
			returnList.add(oto) ;				// 保存全部DTO对象
		});
		return returnList;
	}
	
	@Override
	public Map<String,Object> listTodayOrdersPage(String refectoryId, int page, int size) {
		int currentIndex = (page-1)*size;
		int currentPage = page  + 1 ;
		Map<String,Object> map = new HashMap<>();
		map.put("currentPage", currentPage);		
		List<Orders> list =	ordersDAO.findTodayOrdersPage(refectoryId,currentIndex,size);
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		List<OrdersDTO> returnList = new ArrayList<>();
		list.forEach((o)->{								// 将持久化对象集合保存到传输对象集合
			OrdersDTO oto = new OrdersDTO() ;
			BeanUtils.copyProperties(o, oto);// 对象拷贝
			returnList.add(oto) ;				// 保存全部DTO对象
		});
		map.put("allCount", ordersDAO.findTodayOrdersCount(refectoryId));
		map.put("todayOrders", returnList);
		return map;
	}
	@Override
	public Map<String, Object> listOrdersPage(String refectoryId, int page, int size) {
		int currentIndex = (page-1)*size;
		int currentPage = page  + 1 ;
		Map<String,Object> map = new HashMap<>();
		map.put("currentPage", currentPage);		
		List<Orders> list =	ordersDAO.findOrdersPage(refectoryId,currentIndex,size);
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		System.err.println("进行了业务层方法的调用");
		List<OrdersDTO> returnList = new ArrayList<>();
		list.forEach((o)->{								// 将持久化对象集合保存到传输对象集合
			OrdersDTO oto = new OrdersDTO() ;
			BeanUtils.copyProperties(o, oto);// 对象拷贝
			returnList.add(oto) ;				// 保存全部DTO对象
		});
		map.put("allCount", ordersDAO.findOrdersCount(refectoryId));
		map.put("todayOrders", returnList);
		return map;
	}
	

}
